// 微前端子应用方法
;(function (win) {
  if (!win.__MICRO_APP_ENVIRONMENT__ || win.MFE) {
    return
  }

  // 获取传给子应用的数据和方法
  const appData = win.microApp.getData() || {}

  // 子应用方法对象
  win.MFE = {
    ...appData,
    // 当前子应用的name
    name: win.__MICRO_APP_NAME__,
    // 获取全局数据方法
    getGlobalData: win.microApp.getGlobalData,

    app: win.microApp,
  }

  Object.defineProperty(win, 'MFE', {
    configurable: false,
    writable: false
  })

  // 判断微前端的环境变量
  Object.defineProperty(win, '__MFE_ENV__', {
    configurable: false,
    enumerable: false,
    writable: false,
    value: true
  })

  Object.freeze(win.MFE)

  // win.microApp = null
})(window)
